{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Multi-class (Nonlinear) SVM Example\n",
    "--------------------------------\n",
    "\n",
    "This function wll illustrate how to implement the gaussian kernel with multiple classes on the iris dataset.\n",
    "\n",
    "Gaussian Kernel:\n",
    "\n",
    "$$K(x_1, x_2) = e^{-\\gamma \\cdot (x_1 - x_2)^2}$$\n",
    "\n",
    "X : (Sepal Length, Petal Width)\n",
    "\n",
    "Y: (I. setosa, I. virginica, I. versicolor) (3 classes)\n",
    "\n",
    "Basic idea: introduce an extra dimension to do one vs all classification.\n",
    "\n",
    "The prediction of a point will be the category with the largest margin or distance to boundary.\n",
    "\n",
    "We start by loading the necessary libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from sklearn import datasets\n",
    "from tensorflow.python.framework import ops\n",
    "ops.reset_default_graph()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Start a computational graph session."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "sess = tf.Session()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we load the iris data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load the data\n",
    "# iris.data = [(Sepal Length, Sepal Width, Petal Length, Petal Width)]\n",
    "iris = datasets.load_iris()\n",
    "x_vals = np.array([[x[0], x[3]] for x in iris.data])\n",
    "y_vals1 = np.array([1 if y==0 else -1 for y in iris.target])\n",
    "y_vals2 = np.array([1 if y==1 else -1 for y in iris.target])\n",
    "y_vals3 = np.array([1 if y==2 else -1 for y in iris.target])\n",
    "y_vals = np.array([y_vals1, y_vals2, y_vals3])\n",
    "class1_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==0]\n",
    "class1_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==0]\n",
    "class2_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==1]\n",
    "class2_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==1]\n",
    "class3_x = [x[0] for i,x in enumerate(x_vals) if iris.target[i]==2]\n",
    "class3_y = [x[1] for i,x in enumerate(x_vals) if iris.target[i]==2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare the batch size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "batch_size = 50"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Initialize placeholders and create the variables for multiclass SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Initialize placeholders\n",
    "x_data = tf.placeholder(shape=[None, 2], dtype=tf.float32)\n",
    "y_target = tf.placeholder(shape=[3, None], dtype=tf.float32)\n",
    "prediction_grid = tf.placeholder(shape=[None, 2], dtype=tf.float32)\n",
    "\n",
    "# Create variables for svm\n",
    "b = tf.Variable(tf.random_normal(shape=[3,batch_size]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the Gaussian Kernel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Gaussian (RBF) kernel\n",
    "gamma = tf.constant(-10.0)\n",
    "dist = tf.reduce_sum(tf.square(x_data), 1)\n",
    "dist = tf.reshape(dist, [-1,1])\n",
    "sq_dists = tf.multiply(2., tf.matmul(x_data, tf.transpose(x_data)))\n",
    "my_kernel = tf.exp(tf.multiply(gamma, tf.abs(sq_dists)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare a function that will do reshaping and batch matrix multiplication"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Declare function to do reshape/batch multiplication\n",
    "def reshape_matmul(mat, _size):\n",
    "    v1 = tf.expand_dims(mat, 1)\n",
    "    v2 = tf.reshape(v1, [3, _size, 1])\n",
    "    return(tf.matmul(v2, v1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can compute the SVM model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Compute SVM Model\n",
    "first_term = tf.reduce_sum(b)\n",
    "b_vec_cross = tf.matmul(tf.transpose(b), b)\n",
    "y_target_cross = reshape_matmul(y_target, batch_size)\n",
    "\n",
    "second_term = tf.reduce_sum(tf.multiply(my_kernel, tf.multiply(b_vec_cross, y_target_cross)),[1,2])\n",
    "loss = tf.reduce_sum(tf.negative(tf.subtract(first_term, second_term)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the same RBF kernel for a set of prediction points (used on a grid of points at the end)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Gaussian (RBF) prediction kernel\n",
    "rA = tf.reshape(tf.reduce_sum(tf.square(x_data), 1),[-1,1])\n",
    "rB = tf.reshape(tf.reduce_sum(tf.square(prediction_grid), 1),[-1,1])\n",
    "pred_sq_dist = tf.add(tf.subtract(rA, tf.multiply(2., tf.matmul(x_data, tf.transpose(prediction_grid)))), tf.transpose(rB))\n",
    "pred_kernel = tf.exp(tf.multiply(gamma, tf.abs(pred_sq_dist)))\n",
    "\n",
    "prediction_output = tf.matmul(tf.multiply(y_target,b), pred_kernel)\n",
    "prediction = tf.argmax(prediction_output-tf.expand_dims(tf.reduce_mean(prediction_output,1), 1), 0)\n",
    "accuracy = tf.reduce_mean(tf.cast(tf.equal(prediction, tf.argmax(y_target,0)), tf.float32))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create the optimization and variable initializer operations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Declare optimizer\n",
    "my_opt = tf.train.GradientDescentOptimizer(0.01)\n",
    "train_step = my_opt.minimize(loss)\n",
    "\n",
    "# Initialize variables\n",
    "init = tf.global_variables_initializer()\n",
    "sess.run(init)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We now start the training loop for the multiclass SVM"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step #25\n",
      "Loss = -376.21213\n",
      "Step #50\n",
      "Loss = -713.7119\n",
      "Step #75\n",
      "Loss = -1051.2117\n",
      "Step #100\n",
      "Loss = -1388.7118\n"
     ]
    }
   ],
   "source": [
    "# Training loop\n",
    "loss_vec = []\n",
    "batch_accuracy = []\n",
    "for i in range(100):\n",
    "    rand_index = np.random.choice(len(x_vals), size=batch_size)\n",
    "    rand_x = x_vals[rand_index]\n",
    "    rand_y = y_vals[:,rand_index]\n",
    "    sess.run(train_step, feed_dict={x_data: rand_x, y_target: rand_y})\n",
    "    \n",
    "    temp_loss = sess.run(loss, feed_dict={x_data: rand_x, y_target: rand_y})\n",
    "    loss_vec.append(temp_loss)\n",
    "    \n",
    "    acc_temp = sess.run(accuracy, feed_dict={x_data: rand_x,\n",
    "                                             y_target: rand_y,\n",
    "                                             prediction_grid:rand_x})\n",
    "    batch_accuracy.append(acc_temp)\n",
    "    \n",
    "    if (i+1)%25==0:\n",
    "        print('Step #' + str(i+1))\n",
    "        print('Loss = ' + str(temp_loss))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For a pretty picture, to see the results, we create a fine grid of points to label/color for each class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create a mesh to plot points in\n",
    "x_min, x_max = x_vals[:, 0].min() - 1, x_vals[:, 0].max() + 1\n",
    "y_min, y_max = x_vals[:, 1].min() - 1, x_vals[:, 1].max() + 1\n",
    "xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),\n",
    "                     np.arange(y_min, y_max, 0.02))\n",
    "grid_points = np.c_[xx.ravel(), yy.ravel()]\n",
    "grid_predictions = sess.run(prediction, feed_dict={x_data: rand_x,\n",
    "                                                   y_target: rand_y,\n",
    "                                                   prediction_grid: grid_points})\n",
    "grid_predictions = grid_predictions.reshape(xx.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEWCAYAAACaBstRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJztnXl8VNX5/99PEhAEJBj2fVFRQWWJ7KJ1V1SsS6VBWdp+cSk/a62KWlvXuqC12qIValWwINZ9wa2tVUQUZVNJWYRA2EQhECAIQpLn98e9EybJzGRyMzN3ZvK8X695kbnnnnOee2eY557zfM5zRFUxDMMwjGjI8NsAwzAMI3Uwp2EYhmFEjTkNwzAMI2rMaRiGYRhRY07DMAzDiBpzGoZhGEbUmNMwEoKIvC0iY/22I9URkXUicrrfdtQGETlJRFb6bYcRG8xppCkiMkpEFojIHhH5zv37GhERP+xR1XNUdXqs2xWRhiLyRxHZKCIl7o/qI27ZOyJyV4g6I0Vki4hkicgzIqIiMrLKOX9yj48L0+8dInLA7bNYROaLyOBYX18kXBv+kcg+w9jxgYj8Ily5qn6kqj09tPuMiOwXkd3ua5mI3CcizWvRRso52WTHnEYaIiK/AR4FHgTaAm2Aq4ChQEMfTYsHtwC5wACgGXAKsNgtmw5cHsJRXgHMVNVS9/0qYEygUESygJ8Aa2ro+3lVbQq0BP4LvOD9MtIT917Whcmq2gxoBYwHBgEfi0iTOhtneMKcRprhPoXdBVyjqi+q6m51WKKqo1X1B/e8ESKyRER2icgGEbkjqI1TRGRjlXYrnthEZICILHTrfisiD7vHG4nIP0SkyH36/lxE2rhlFU+jItJDRN53z9smIjNFJLtKXzeIyJcislNEnheRRmEu+UTgFVXd7F7nOlWd4Za9CuQAJwW13QI4D5gR1MYbwDC3DOBs4EtgSzT33HU+M4EOItIqqK/zRGRp0Ejk+KCySSKyyX2CXikip7nHnxGRe4LOq/ZZuMfPBm4FLnNHO1+4x8eJSIHb7loRGR3KZhE5REQeEZHN7usRETkkuE8R+Y07Sv1GRMZHcy+C6k4SkS3A01WvIdy1R0JV96nq58AFOJ/peLetsN8lEXkW6Ay84d6jm9zjL7gjzZ0iMldEekVzbYaDOY30YzBwCPBaDeftwXm6zgZGAFeLyIVR9vEo8KiqHgb0AP7pHh8LNAc64fzHvgrYG6K+APcB7YFj3PPvqHLOT3B+vLsBxwPjwtjyKXC9OFNvxwWPKlR1r2vbmKDzfwKsUNUvgo7tw7lfo9z3Y6jsVCIiIg3dOkXADvdYX+Ap4EqcezEVeN39se4JTAROdJ+izwLWRdufe23vAPfijnZU9QT36fvPwDluu0OApWGa+C3OU3sf4ASckdptQeVtcT7LDsDPgceCnGpNtAUOB7oAE4IL6nrtqrob+BcHHwTCfpdU9QpgPXC+e48mu3XeBo4EWuOMSmdG279hTiMdaQlsC5p6wX3KLRaRvSIyHEBVP1DVr1S1XFW/BJ4DTo6yjwPAESLSUlVLVPXToOM5wBGqWqaqi1R1V9XKqrpaVf+lqj+o6lbg4RB9/9kdPWzHGQn0CWPLfcADwGhgIbBJKgfcpwOXBI1UxrjHqjIDGOM+pZ6MM0qpiZ+ISDGOY/w/4JKg+z4BmKqqC9x7MR34AeeHugzHsR8rIg3c0VFNU2HRUg70FpHGqvqNquaHOW80cJeqfud+BnfiTNsFOOCWH1DVt4ASINq4RDlwu/v5Vn1oiMW1b8ZxStF+lyqhqk+5I/AfcBzMCVKLOEl9x5xG+lEEtAyeS1bVIaqa7ZZlAIjIQBH5r4hsFZGdOKOCllH28XPgKGCFOwV1nnv8WeBdYLY75TFZRBpUrSwibURktjtFsQv4R4i+g6eGvgeahjLE/UF+TFWH4oya/gA8JSLHuOXzgG3AhSLSA+eJelaIdubhzJv/FngzxI9dKP7p3tc2wDKgf1BZF+A3rrMudp1LJ6C9qq4GrsP5wfrOvRfto+gvIqq6B7gM57P8RkTmiMjRYU5vDxQGvS90jwUoCn7wIMJnEIKtqrovjI2xuPYOwHaI+rtUgYhkisj9IrLGPX+dWxTtd7/eY04j/fgE54l2ZA3nzQJeBzqpanPgCZyhPjhTV4cGThSRTJwfVABU9WtV/SnO8P4B4EURaeI+ld6pqsfiTI2cR+WpoQD3Agoc505xXR7Ut2dUda+qPoYzRXRsUNEM147LgXdV9dswTfwD+A21mJpy+92GM7K4Q0TauYc3AH9Q1eyg16Gq+pxbZ5aqDsNxLopzH6HKvceZ6gnbdQhb3lXVM4B2wArgb2Hqbnb7DtDZPRYLIqbOjnDtNSIiTYHTgY/cQzV9l6rakofzf+N0nOm3roGmo7WhvmNOI81Q1WKcqYbHReQSEWkmIhki0gcIVpw0A7ar6j4RGYDznynAKqCROMHyBjhz3YcECkXkchFpparlQLF7uFxEfuTGFTKBXThTHOUhzGyGM92xU0Q6ADd6vV4Ruc4NtDYWR0I71m1/SdBpM3B+JP6P0FNTAf4MnAHMra0dqroSZ5R1k3vob8BV7ohORKSJez+biUhPETnVDTzvw5neCtynpcC5InK4iLTFeSoPx7dAVxEJjB7biCMnboLz4FBC6PsPznTkbSLSSkRaAr/HcZpxpYZrj1TvEBHpjzNtuAN42i2q6bv0LdA96H0znHtThOOc763D5dRLzGmkIW7A73qcH7Bv3ddUYBIw3z3tGuAuEdmN84Pxz6D6O93yJ4FNOE+/wQqes4F8ESnBCYqPcqdz2gIv4jiM5cCHOFNWVbkT6AfsBOYAL9fhcr8H/ogznbUN+CVwsaoWBF3POve6m+CMrkKiqttV9T+qnjeZeRCYICKtVXUhjpOagvMjt5qDwfxDgPtde7fgjNhuccueBb7AmTZ5D3g+Qn8BiW+RiCzG+f98Pc6IYTvO3P7VYeregxMD+hL4CicgfE+Yc2NJpGsPxU3ud7QIx/kvAoa4U3FQ83fpPhznWCwiN7htFOJ8r/+HI6QwaoF4//9hGIZh1DdspGEYhmFEjW9OQ5yFYJ+JyBciki8id4Y45xBxFnatFicNRtfEW2oYhmEE8HOk8QNwqqqegKPBP1tEBlU55+fADlU9AvgTtVBZGIZhGLHHN6fhpnwocd82cF9VAywjOah2eRE4LXjFr2EYhpFY6ppMrE640sxFwBHAY6q6oMopHXD07qhqqbsILQdHeRHczgTcdAWNDj20f6duR8TbdMMwjLTi6/wvt6lqq5rO89VpqGoZ0MdN3fCKiPRW1WUe2pkGTAM4qvcJ+pcX34uxpYZhGOnN2ce0Laz5rCRRT7kL0v6Lo/8PZhNO6oVAiuXmOHptwzAMwwd8G2mIk0L6gKoWi0hjnJW4VQPdr+NkTv0EuAR4vw4LrwwjZTnQcA67bw21TjI6Zl2awcRe1VJuGUat8XN6qh0w3Y1rZOAkf3tTnJ3WFqrq68DfgWdFZDXOCtdR4ZszjPTgQMM5dP6ia6Vj+c87DqN9j5xat7d5TRF5L5TTLiNcwltYf8I6GuwfUeu2jfpH2q0It5iGkaoMXjgJgDlvulPLVYSC7bsf7rntzQXbwxe6vwEjzusS/pwIfJJrSvh04Oxj2i5S1dyazvM1EG4YBkzJz2Pm3k6OsxBAoH332o8oIlGTw9lcUMScOVHFQSujMIJJjG68IeoqNk2W2thIwzB84EDDOQCV4hQZWZm07ZIdrkpSsrlge8VIJVo6r9vAjlm3Vry3abHkwEYahpGkNB03lPVdO1W89xKnSBZqO2W2uaDIufYgZ9nsXnMcqYQ5DcNIIIMXTmJO104gUqcYRapSddpt85oidt/6LCtKnZ+ii0d35JtjevlhmhEl5jQMI0EMXjjJjVvUT4cRivY9cthSWMyxWc5mifnPl7GidDy/ufB9vpoyj5JnPvbZQqMq5jQMIwG0W55vDiMM1eI4BU8zZw7QtROdxw3l/hu7WPA8iTCnYRhxpt3yfPKfvzslA91+EJjCCsQ/AmtM1p+wDrD4h9+Y0zCMODL/tnc5OutpcxgeCI5/5D9/d8XGt7MunWkjDx9JitxThpGOBBxG+x455jDqSPseORUqs7wXypl/27sViyGNxGJOwzDiwJT8vAqHYcSO9j1yyMjK5NhGM5jzZiHtlodPjWLEB3MahhEH/pDxW79NSFvadsmmbZdsMrIyyX/+btotz6fpuKEVCyaN+GIxDcOIMQFpbUZWpt+mpDWBKb/85+8Gd8FgrOMd0Tqi+hScN6dhGDFmXZMxIPdYHCNBBKYAA9l8p5AXE8fhqN6iS0ff67Ku9WZRojkNw4ghAXlt1Qy1Rvxp3yOHzQWO45j/3LsVx0+cXBp2JDAlP49+z40NWRat6m1LYTH5z9/NitLx1cqG3HNWLa4gNTCnYRgx4kDDOeQ//6zJa32kfffKK8zLS8vYfSuMOG9uyPO3v1kOrnOoStsu0YkYAp91RuGMSsfLS8uYfxv85sL3Gd14Q9rIhC3LrWHEiEAiQlNMJRebCyLvEB3rNPTV+nZ/Yjuvc9LHJ2tqFMtyaxgJpCJzrc1KJR3xdArR9l2R3RfotTw/peMfJrk1jBji5w+Ukby0755TscYk//m7mX/buzVXSlLMaRhGHam6P4ZhhKNtl2za98jh6KynU9ZxmNMwjDrSbNI0Z4tWi2UYURJwHNvvGJVyixLNaRhGHZiSn+dIbC2YYdSSwEPG7lufTSnHYU7DMDxyoOEc8l4oB2q/7alhQGXHMSU/z2drosM39ZSIdAJmAG1wRGnTVPXRKuecArwGrHUPvayqdyXSTsOoiURPS/0i69+szthZ7fgR5c15svT0lO0rmW2IJ+175MR8NXs88XOkUQr8RlWPBQYBvxSRY0Oc95Gq9nFf5jCMes+xejhZWvm/bpZm0Etj77wS2Vcy2xBvgtO+J/uIwzenoarfqOpi9+/dwHKgg1/2GEZt6fxFV1/6HVt2TLX/uJkIY8qOSem+ktmGRNC+Rw4IzNyb3Eq8pIhpiEhXoC+wIETxYBH5QkTeFpGQK2JEZIKILBSRhTt3bI+jpYbhMP+2d8l//m5fFFM5NObs8i4VT99ZmsHZ5V3IoVFK95XMNiSSOW8WJnVg3HenISJNgZeA61R1V5XixUAXVT0B+Avwaqg2VHWaquaqam7zFhaQNOJL8I58fhH89B3vp+5E9pXMNiSCwOLQz29K3mQdvjoNEWmA4zBmqurLVctVdZeqlrh/vwU0EJGWCTbTMABHLbX9jlG+Oww4+PQtStyfuhPZVzLbkCiSfR8W35yGiAjwd2C5qj4c5py27nmIyAAceyNnHzOMOHCg4Rx23+rsreC3wwgwtuwYjtOWCXnqTmRfyWxDImjbJTupF/75OQYaClwBfCUiS91jtwKdAVT1CeAS4GoRKQX2AqM03dLyGknN4IWTWNdkDPnPP8st3T6nsNGeauckWvpZVYJ6sfvDkgjJbTz7qokcGvPn0pMT2qdfBGS4U5fMZGKv5NoV0DenoarzqGEZrapOAaYkxiLDOEjTcUM5buIw5rxZCHIPiHBCg9Zs0kJKpbziPD+kn8fq4azT3QmxI5F9GalB8kZbDCPBBPTxeS+Us71rJ9a/WQgiFau9x5Y15p2Mwkp1/AjKji07JmF2JLIvIzXwXT1lGMlA03FDyXuh/GBakB5OKuvg9CDJIv2sb5Lb+szNDxbWfFKCMadh1Gvm3/Yu2+8YVbGBUsBZhCNZpJ/1TXJbLxFY37UTTccN9duSSpjTMOotwestnFFFzfP0ySL9rG+S2/pI++7OCvHjJg7z25RKWEzDqFcEB7iPzvImnx1bdgzrZHdcn7ijSdIXyo5YJ/er2t5rmQW8lllAQ81gf1BwPLif9bI7ZFlDzeC9Az+utQ3JwpkNXknL66otNtIw6g2BHfbmzCms06ZJAelnPJ+4o0nSF8qOWCf3C9dee20Stp/22sTJWx2M4hxPYdL1umqLOQ2jXjB44aSDcYvu0U1F+YnXJH2xTu4Xrr3bSgeE7ee20hNDtnVb6QBPNiQL6XpdtcWchpHWBALdcyrks8ntLAJ4VS3FWu0Urr0jyA7bzxG0oKs2O/hUrtBVm3EE2Z5sSBbS9bpqizkNIy2pmieqqnw2FfCqWoq12ilce5H6qfpUni5P4+l6XbXBnIaRdiRjnigveFUtxVrtFK69SP0EP5Wn09N4ul5XbTD1lJFWTMnPq7RAL9WprVLLi9opGlVVODsi2Xdb6Yn8qsHctHkar3pv18luTmn4UnzzcCVhpj0baRhpw4GGc9LKYUDtlVpe1E51sSOSfUfQgjkHRqbN03iit53dvMZJ6D13yPC4tO8VcxpG2pEuDsMLXtRORnT4se3srEszaLA/ubLcmtMw0oLgOEZ9xovayYgOy8PlYE7DSHnSJfAdK7yonYzosHtoTsNIAzp/0RUwhxHAi9rJiI5E3cMthcVxaTcWmHrKSHlemrmRYxsl977KiSKceiqg8KmrGitAJDUW4Cn/VazzZnnBa86vWLKlsJjy0jJ6XfY7Jh7TKy591AUbaRgpS/ACvrZd0kOhU1dqUvgkQo3lVWWUaHWSVxsSkXtsRel4vklChwHmNIwUZuqSmYBNSwWTDLmnkiVvlheSwYby0rKE9eUFcxpGytLvubF+m5B0JEPuqWTJm+UFv23YXFBEr8t+x5B7zkpIf14wp2GkJIMXTqrIK2VUJhlyTyVL3iwv+GqDQtc9MxLXnwfMaRgpybomY0D8tiI5SYbcU8mSN8sLftmQrCvAq+KbekpEOgEzgDY4GVamqeqjVc4R4FHgXOB7YJyqLk60rUZy0W55PvnP301GlnfFVCSVDHhT/yQTVRU+dd11zkvuKa8qo0TsjOjFBi/qrmjrbF5TxIrS8c601P4YXEAc8VNyWwr8RlUXi0gzYJGI/EtV/xd0zjnAke5rIPBX91+jHhOQ2NZFMXWsHs463U1p0A9pQCWjaNiyVCGg8AnQXpuwjt2VR2e12HWuans1Ha+pzEtfiSSUDZG+M+GoqU5AXlvhMFIA36anVPWbwKhBVXcDy4EOVU4bCcxQh0+BbBFpl2BTjTQkkkomGRQ0scZ2nas7Xr4XkeoEr8dIFYcBSRLTEJGuQF9gQZWiDsCGoPcbqe5YEJEJIrJQRBbu3LE9XmYaaUQklYzfCpp4YLvO1R0v34twdX4o+L7CYSTreoxw+O40RKQp8BJwnaru8tKGqk5T1VxVzW3eIrV2ZzNqx4GGczg66+mYtBUP9U8yY7vO1R0v34uqdc4qaAuqjDivS8o5DPDZaYhIAxyHMVNVXw5xyiagU9D7ju4xox4SnJgwFivA46H+SWZs17m64+V7EVznpOI2ZJc2ZMR5Xfgk94EEWBx7fHMarjLq78ByVX04zGmvA2PEYRCwU1W/SZiRRlIRjxXgY8uO4ThtGVb9E64sVbmt9ESakGWjjDrg5XtxVkFben7fnIu2dqHzug0p6zAARNWf/QRFZBjwEfAVEJAW3Ap0BlDVJ1zHMgU4G0dyO15VF0Zq96jeJ+hfXnwvbnYb/jF44STmvFno24K+uspWY0W6y4VjRTIkQISD6y+a3XsFQNJtqhTg7GPaLlLV3JrO801yq6rzqGF5ljoe7ZeJscjwmwMN54Qta5F3L0wcBjgyRT8SFNZVthor0l0uHCu8SGRjxeaC7YCCkjLrL6LFUqMbScGU/DxufrAw4lPE3pnfsbLpeHrytC+O47bSE/lFg/dDHE/sVM/YsmN4J6Ow0rGDQVmNUFa/iHyf4sOWwmLKy8pAYcR5XQA4PDd15LTRYE7DSDhNxw2tduwWoEeLo2qse3XJbLZeeTtfzb7TGfaL0L57YhRzgUByxWjDp4ByILD6VkYhpVJeTfoZqaw+UdN9ijWBaagVpeM5c+NdfJI7Oy79+I05DSPuBEYRwRwRhYMIR6upkzmVxmSP6czLr61kc0ER7bsnZvql6mjDr4By8FN0KLlwuLL6RqLuRXDcYsj+syghvUYXwZjTMOLGlPw8AG5+sLBOTiIcxTPWc9GYnhWOA4SMzIy4TlsFjzb8lK0GnqLfyFgbVi4cqqy+kYh7kUp5o2KBb+qpeGHqqeSg6bihCJAhWXTL7h7XvrLHdObrxqN4ceZ6emY+XZHIMF7OYzU7+FWDuTx64OQKp3HxD3Moarav2rk5uxvRoskhtVY7RdpOdb3sDqvi6qzNat1eKm/BCjWrxYrYy51Zn3F76cCYOo1UzBsViaRXTxnpR0D91CLvXoToYhSxoHjGeloxmauBrVfeXuE8Nhdsj8vI4whaMOfAyErHji5rwcel31T+H1XqHM/RRrVWO7XXJmxkT8g6pZSHVXGFUwxFai8SfiqQorEhGrVYPBIgBueNOjwFV3XXBd/TiBjpwZT8PFrk3cvhCXYYVWk1dTJXl8zmopE9WVk6juU/jGHzmiK2FBbHtd/rD+1LVkbl/04NMjK4/tB+npIjRtpONVLyQS/tRSIZkjcmW3LJYIeRimlA6oo5DaPOBALdmZJFjxZH+eYwgimesZ6rS2ZzdclsVpaNp7y0jM0FRSFesUlwmUNjztUuZLjbO2eUwbnatcYEiF62U42UfNBLezVdl9/JG5MxueSK0vH10mGATU8ZdSTgMOIR6I4VV5fMJntMz2rHv248ypHuxshx9GvQmtc7r4VMKC+HfutbVWRO86J2ilQnkorLS3uRSAY1VjKpxcpLy7h4dEfqaz4jcxqGZ5qOG8rN1E0+myiKZ6yvdqwVk7loTE++bjyqzu0/+Kd3eWXBH+k/NofF7YoYsqcdD7+4hMN+3JC+XVt7UjtFqhNJxeWlvUgkgxorWdRimwscpVR9i2MEY07D8ETTcUMZP2QDXzffD6ypVNZrTzP+89UwfwyrJYEgel3pvKWAR377APn/y2RP898zems3vhnSlhXf7KBv19aAt61RI9W5rfREftVgbsi1Il7aC8Vzn6zk6HYtGNv1YL0l675jxTc7+Ong6qO3ADXFkLyIE+KxtawXfnPh+3ySxuswasIkt0atCazo/lvf/TzXeiP7Mw5+hxqWC3nfdeL+dfX3SWzrlTdVKLgQErbwMB4sWfcdd7yygDt+PJC+XVtXex+KQKB4Zdn4kOXOfUncSv5YsrmgiBEjUjeteSRMcmvEhcD6ix4tjuL6Tft4vvUmDkZkIUOF6zcd4Zt9yUCrqY78Fxrz16ajoODplHUcfbu25o4fD+SOVxYwsl93XltcUMlhVCTmC0bhuFG3c+rU0CO47EoLMh0yMuu257uROKJyGiLSAegSfL6qzo2XUUbycaDhnGrrL9ocaMRl33WoGG00LBdGbe1I6wOH+GtsEnF1yWz+2nQ8rHEWHabiD2Pfrq0Z2a87Mz5ewZihR9O3a+uD4gFVjht1O0furZxnqTiMw4CDK/kDBAsSUnH0Ud+o0WmIyAPAZcD/AFdQiALmNOoJoRxGgOs3HVEx2rBRRmgCjsOv7Lx1Zcm673htcQEX9e7KKwvX0KnhIfRq3YLjRt0OOCOr2q6CCRYmtGIyxwWSULrOKBmdx5bC4mqDqvpIjTENEVkJHK+qPyTGpLphMY3YEzwlFYpJXZcxo80Gxn7buV7HMmrir01HVaQ5SRXHsWTdd/z+pU+5blhvjmnZnL29LuCGh+7kbz17MiwntlNuW6+8CYCvZt+ZlLGgzWuK0npBXyxjGgVAAyAlnIYRHyIt2Lt+0xGsPLTERhlhyFv4OcNzWnJ1t4Np3f/+9hes2rmbB0bVXmUWUDQFB6KjUTR54bP8TVw7+FgyWlzHcaM602rqZJr37MnSnTtj7jRauVNap1aJBSVD/qsAvy3/AxOZldA+k42wTkNE/oIzGPseWCoi/yHIcajqtfE3z/CbwCgjEm0ONOLV/w1KiD2pyPCclty5cgUAV02dzJK2x/CPJR+Q16eHp/aObtcirKIpFlRsJAScf3RnLhrZk+IZs2GqUz4sJyfmDqMqFbGggqc59kj/818ZB4k00gjsxb0IeL1Kmc3s1QMONJzjax6pdOGqbt0AuHPlCt7+7ls+2/E2N4y7mr57l3sK/takaPJKcHB7Zdl4brloPhB6YWQiCDiOswqe4O0ehZUSNNb3fUL8JKzTUNXpACLyK1V9NLhMRH4Vb8MM/2mRd6/fJqQNV3XrxtvffcuCHTsY2KIFv9my7uAOhB4dR1VFk1eqKqEATp06meIZnpuMGVeXzOavXMXJxev4IHsLpRlar3cjTAaiSVg4NsSxcTG2w0gyAhso2SgjNjyxdi2fuQ7jsx07eGLtWlpNncxFI3uCKpsLttcqE29A0TRm6NG8triAJeu+q5U9WwqL2VJYzOY1RawsHcdxl/2ei0b2pNXUyRWxhWTh6pLZHP/dzYg71PBjlBGr/GTpQKSYxk+BPKCbiARPTzUD7A7WAzLF1n7GgifWruXOlSu4vefRXNWtW8V7gKtmwEVjenLfy0OgFMqjWAhYdVV23y6talylHczmgu0VU1Dg/CgzlVrLZhPJTcXvsLHVebyw7XWG72xLzqGJG2U4UltlxHldOLxX+q0Ery1hJbci0gXoBtwH3BxUtBv4UlVL69y5yFPAecB3qto7RPkpwGvAWvfQy6p6V6Q2TXJbdwJpQlIhEWEqEFBPBWIb4DiSuUXbmJVbeW+MgCw3eP6+qhPxqp6qWIHtrthOthFFTXzbYB8/G17Ez5c0Ibu8UcLWcmwpLOaYi29NW6ltgDpLblW1ECgEBsfSsCo8A0wBIs2efqSq58XRBiMEqeQwphQU0Kd580qKnnlFRSzduZOJ3UNvNeuljlcb8vN28/7h27iDFQcrDII22w+BVZXbCaRx/+MbS+nfvRXbV5dU/Njnf7uDgu27eftHGynOrrIZ9VGQ064RfOKoq9qUZxHQq+R/u4M3V2zghCMnMO2qHYCzYjua602GexugzYFGzPlPB7ZeeZOtIPeRsDENEdktIrvCvWLRuZuKxKa6jDrRp3lzJixdwrwi58d1XlERE5YuoU/z5jGt49WGE3Y1h6rj8lLosyt0X8Uz1tNztZI3+V0aFnzPRRdyx4xhAAAgAElEQVT05PAeTZm6cCVjzzuW1iW9QrbXdVcTWpLF71/6lHc2D6xUL+/Uo3jzkz/y5p+WUDxjfdTXmwz3tiqtpk52A/aJEXGWl5bVfFI9ItJIoxmAiNwNfAM8izNoHg20S4h1DoNF5AtgM3CDquYnsO96R2Cf71RiWE4O0/r0ZcLSJYzt3Jnp69czrU/fiGsJvNTxasORRU34b6etHAj6kWsowoNF1WZkQ7f3u6KK9vosKuOFBtnkdsziQJDnaJDVgIfOmEbLcw+n+4+WcOPdk7hlU5AdRS3o4eF6k+HehuLIvbP5Sol7WhbbP6M60ainLlDVx1V1t6ruUtW/AiPjbZjLYqCLqp4A/AV4NdRJIjJBRBaKyMKdO2zg4pVAjqlUDIAPy8lhbOfO/GnNGsZ27hzVD5SXOl7aa3OgEXlbO5LpPrBmlkHe1k41JnaM2N6WdpXaG72lHcc89SStpk5mxPx/hazn9XqT4d5WpXjGeo4bdbu7jW8c/88rnLkxYhi13hGN09gjIqNFJFNEMkRkNLAn3oYBuE6qxP37LaCBiLQMcd40Vc1V1dzmLWyOsy4I0C3b+7yzX8wrcp7Gf92jB9PXr6+YGol1Ha/tDVuWQ5m7oLmsHIYuq/l76rW9cPW8Xm8y3NtQVExTuZJlIzFE4zTygJ8A37qvS91jcUdE2oqIuH8PwLE39t8+o2KUkYoE5syn9enLpCOPqpgaifRD5aWOVxvmFRUxaUE+Z25qjSictak1kxbke7YvUnvh6j2xdq2n602GexuJeDqO4P0+jIP4unOfiDwHnAK0xHFIt+MkR0RVnxCRicDVOGG/vcD1qjo/UpsmufXGlPw8fvvQJl9HGV5VN8mg8InUHjjB4SPbNuHKI5cy7eu+rNpSwtKdO3nkjNWUtKoeaG34rTBr4Ym1bi9QVrXe42sLuKZb94jthSqbv70opFz42Q3reaBX71q3F6msLsqq7DGdefm1lTHdEXDzmiI6r9tAyTMfx6S9ZCdayW2kdRo3qerkoMSFlUjWhIXmNLyRDE4j+Al1WE5OtffpyHk5n7CwW3FlSUop5BZk8+b2eKrdDxLpvgMhy67t3oM/F6yp9WcVz884lo4jsACy2b1X0GD/iDq1lSrEIjX6cvffhRHOMYyYkQjVTbLx91196c8HlAY9l2UhPLW7X8JsqOm+hyvrfdhhCVFjRUtgR0BnK1nvazg2FxSBwojzuvBJPXEYtSFSTGODiIiqTg/1SpiFRr0i3qqbZKPNgUaM3tYRcdWzUgqXb6tZWRVrIt33cGWJVGNFS0BV5ZWAw+i8bgOf5FrKkFBEchpPAkUi8i8RuVNEzhSRZokyzEgcU/LzuPnBQr/NABKjukk2Wn5yCIFZYlXI+aRhwm2IdN+TQY1Va7wGxl2HUV/iGF6ItLgvV0QOBQYAQ4BrgWdFZAvwsapekyAbjThz84OFSZE2pOr89tDDc9I+pvHE2rU8vHI1ub2zWXREMf3XZvPwF6tpti+rUvA5nkS670DIsqoxjWg/q0R8xq2mTvY0TWWy3eiIKLlV1e9V9QPgUeBPwGNAE+Ds+Jtm1DeW7txZ6ccjMP8dUN3UlryFn/PE2rWVjj2xdi15Cz9n6NwPmZS/rFLZpPxlDJ37YcSyWPPshvWM6dSJv+/qy8DdLXhqdz/GdOrEnwvWVHsCn1dUxJSCAqYUFHgqC8fjawu4tnuPSvf92u49eHxtQdjPZG7RNk+fVaw/43AUz1gflHa+5pFMIPA94rwuNsqogUi5p/JEZIqIzMPZue8M4CtgmKqm3uovIyTJlDZkYvfu1Z42h+XkeJZiBrZZDTiOQEry4TktGZaTw/QNGyqcw6T8ZUzfsKFiK9NwZbHmgV69eWPLFr7esodX/zeIVVtKeGPLFq7t3iNs/qZIuZ285H26plv3Sk5qXlERfy5YwzXduof9TGblnujps4r1ZxyJg44j8poLJ46hFseIkkjqqanASuAJYK6qropwrpGCBBb01bQHeKpSfZvVHRV7WgSYvmED/966lU379jG2Uyce6NU7qrJYEUlNFEmd5EXt5MWGVKeyoqqoWpr54MC3jTCiI9L0VDYwAWgE3CEii0TkTRH5rYicmhjzjHiT7nuAX9WtGwNatGDBjh0MaNGiksN4oFdvOjRqxKZ9++jQqFElpxCpLNZ4USd5LautDelA8Yz1nLqzMStLx1cacWxeYw7DC2GdhqqWqepiVZ2iqnnAucA7wHjgX4ky0DDqQqhtVgNMyl9W4RQ27dtXKY4RqSzWeFEneS2rrQ3pxNUlsx3HsabIcRjArEszzGHUkkjbvR6Po5oKvBoC83GyzdpdNpKeSNusrv1+D9M3bKiYdgrELQKEK4v1iCOcmiiSOglCK5pqKgs3eqhPqrWrS2bz7YTf0XXPDEY33sDEXrP8NinliJRGZDEwD/gER2K7PpGGecXSiETPlPw8bnmwMG2np4bO/ZBhOTmVfugn5S+reIoOV7bjwAFys7OZ0f9gRoUxixby/rZt3HZUz6i2bY2WcFvBJjK3U7x22ktG1uxYhYKNLkIQi+1eE5fHwEg4gQV9GSm4d0a0PNCrNxOWLuH8tu0q8hy9sWVL2CfogAMJPHnPKyqqqLewuJjRHTtWjFSCRy639zzas43XdOvOhKVL6H3YYRV9BY8wggkou0LhtQwI6RhqqpPK7Jh1Kw3213yeEZr0/cUwaiRTslJy74xo8aoKilSv26FNIqqxEmWjUXsCowyjbkSzn4ZhpCyxzo8USY2VaBuN2qEERhmWhLAumNMw0ppY50eKpMZKtI1G9KwtdlbEm8OoO5HUU28QYh+NAKp6QVwsMhLCzQ8WQhrHM8C7KihcvfPbtmXGhg0h1VheRxz1SbnkF2uLCyjTUotlxIhIvxoPJcwKI6E0HTfU173AE6XWqSmnUiQFUqj8SJPyl1WKYQT+nVu0zbPTiJSLyZxG7Lj/xi5MtFFGTIiknop9djYjafBTZhvIjxRup7hYEUmZBKF3pAv3hD8sJ4ePh59c7fhV3brVKa5R35RLiSYwyjBiR43zEyJyJHAfcCxOShEALGmh4ZVEKYa87khnpAcBh3H/jV1sEV8MiSYQ/jTwV6AU+BEwA/hHPI0y0p9EKYZinaPJSA2C4xjmMGJLNE6jsar+B2f1eKGq3gHY5KBRJxKlGIp1jiYj+VmzY1VQ4Nt+qmJNNPKZH0QkA/haRCYCm4Cm8TXLSGcSpRjysiOdTVGlNoEFfOYw4kc0I41fAYfibPfaH7gCGBuLzkXkKRH5TkRCphAVhz+LyGoR+VJELLVJGpCo3dsi9ZMoG4zEYQ4jMdQ40lDVzwHc0ca1qro7hv0/A0zBiZOE4hzgSPc1ECe2MjCG/Rt1IJJ0dv72opCJ+MIl90u0YiiSaincdT2+toBrunUPeb2RpML1KSGgXwQnIrS1GPGlxpGGiOSKyFfAl8BXIvKFiPSPReeqOheItJv7SGCGOnwKZItIu1j0bdSdSFuLRtpqNRns81JveE7LmLZXUz0jOlZb5tqEEk1M4yngGlX9CEBEhuEoqo6Pp2EuHYANQe83use+SUDfac3a4oI6L+6LJGkNPFXHMrlfLO3zWi/SFqyxtsOomdU7nF2ozWEkjmhiGmUBhwGgqvNw5LdJg4hMEJGFIrJw545IAxcDnNWxZVpakY+nLkSSrcYjuV8s7fNSL9btGd4xh+EP0TiND0VkqoicIiIni8jjwAci0i8BgelNQKeg9x3dY5VQ1Wmqmququc1bHB5nk1Kfib1mcf+NXWLSViTZajyS+8XSPi/1Yt2eUTvWFhewescqVu9Yxf03djGH4QPRTE+d4P57e5XjfXESGp4aU4sq8zowUURm4wTAd6qqTU0lCZEkrct27Qq71WqiRhyxTlgYaQtWL+3ZFFX0rHFHFcHqqIn+mlRviUY99aN4dS4izwGnAC1FZCOOY2rg9vsE8BZwLrAa+B4YHy9b6iN1zckTSbY6f3tRzJP7xdK+SD/W4eo9vrYgpu1ZUsLIrC0uoFxLK1Jt75h1K2Dpzf0m7B7hFSeItAHuBdqr6jkiciwwWFX/nggDa4vtER49TccNBeCINN0j3EhNArG2QN6oK/uONkeRAKLdIzyamMYzwLtAe/f9KuA676YZyUJgPjgQUDQMvwmkAPnDDR0q8kaZw0guoolptFTVf4rILQCqWioiZXG2y0gQJc98zJT8PG5+cJWNOIyEE2rf7pJnPnbiFbZILymJxmnsEZEc3F38RGQQYLkW0ghHTeU4DnGP+bnfhpG+BOIUASztR+oRjdO4HkfF1ENEPgZaAZfE1Soj4UzsNYuSZ+BAwzm0yLu3Qq0CkCFZvu3yZ6Qma8JMeSpU29/C0n6kFtGopxaLyMlAT0CAlap6IO6WGb7QYP8IdgRtPzB1yUxufrAw7EJAcyb1m1Dfi4DiKaB2qoptu5rahHUaInIisEFVt7hxjP7AxUChiNyhqrb0Ok0JniqY2GsEO2bNYeqSmdXOu/nBQtbsWGVTWfWQ4F3xQuEEsBNslJEQIo00pgKnA4jIcOB+4P8BfYBp2BRVvaHB/hFM7FX96bDkGUe261V9lWnTXklPqEB1ANtGtX4SyWlkBo0mLgOmqepLwEsisjT+phmpgNc0Do5iqzAqhyNYYD7eRPocwn3GtiK7fhLRaYhIlqqWAqcBE6KsZxg1Egi8R0PTcUNDBlbNkXgn+H6GCk4bRjgi/fg/h5OscBuwFwikRj8Ck9waCaTkmY850HBOpWMt8u5l9Y5VZIrzFbZprsgEB6wD6WOCA9UWnDaiJazTUNU/iMh/gHbAe3ow30gGTmzDMBJGVR1/yTMjmJKfB1Ch7jLHEZpAXCI4aG2BasMrEaeZ3N3yqh6znBNGUhCYTtkxa07FyMPiHwcJjlNUrLI2jDpisQkj5WmwfwQlzzgjkWA1V31Li1I1mG1xCiMemNMw0oqA0ieQTyvd06JUTR8erHSykYURD8xpGGnJxF6z2DHLCZ4H0qJkyMGveyrHP6oGtS19uJFIzGkYaUvgRzQ4aA6pHTgPbHMa4Mq+ox3lkwW1jQRhTsOIG23feImjHrmPRt9sYl+7Dqy67ha2nH+xL7YEz+2nWuA8eFV2tTiFOQsjwZjTMOJC2zdeovfvbyBz314AGm/eSO/f3wDgm+MIEC5wnmxpTYID27YvtpEsmNMw4sJRj9xX4TACZO7by1GP3Oe70wimcuC8sNJKaT9GIOEC27amwkgWzGkYcaHRN5tqddxvggPnEEgJn7gV58H7YgdWaltg20hGzGkYcWFfuw403rwx5PFkpWpK+PtvTMyK88A0lKmgjFTAnIYRF1Zdd0ulmAZAWaPGrLruFh+tqh2hVpwHqEv8o2q68UBw2/bFNlIBcxpGXAjELZJFPVUXggPnULu07uEI3hfbgttGKiEH8xD60LnI2cCjQCbwpKreX6V8HPAgEJgIn6KqT0Zq86jeJ+hfXnwvDtYasSSZ5LiGYcDZx7RdpKq5NZ3n20hDRDKBx4AzgI3A5yLyuqr+r8qpz6uqPYylEcksxzUMIzIZPvY9AFitqgWquh+YDYz00R4jQUSS4xqGkdz46TQ6ABuC3m90j1XlYhH5UkReFJFOoRoSkQkislBEFu7csT3UKUYSkWpyXMMwDuKn04iGN4Cuqno88C9geqiTVHWaquaqam7zFocn1ECj9oST3SazHNcwDAc/ncYmIHjk0JGDAW8AVLVIVX9w3z4J9E+QbUYcWXXdLZQ1alzpWKrJcQ2jvuKn0/gcOFJEuolIQ2AU8HrwCSLSLujtBcDyBNpn1JG2b7zE8NNyOfPYdgw/LZe2b7wEOMHu7X1yUah4be+TW6cgeL/xl3LmMW0rXv3GXxoX2w2jvuObekpVS0VkIvAujuT2KVXNF5G7gIWq+jpwrYhcAJQC24Fxftlr1I5ICqnsxZ/R8tOPKjZIAmj56UccfeckVtz+QK376jf+0pDt9Rt/KYuffiGmtpu6y6jv+LpOIx7YOo3kYPhpuSHTiOxt35FDvv2GjLKyamXlmZn8a1ntg+FnHtO2ksMIoMB7y7fUur1Its/9z8Jat2cYqUDSr9Mw0puICqkwDyoSwpH4gam7DCM8ya6eMlKUSAopzcwMWRbueKIxdZdhhMechhEXIimkNlx6OVXHGgpsuPRyT31tG3RSyPa2DTrJU3um7jKM8Nj0VBoSKa+Tl5xPXupsOf9ishd/RqcX/oGUlaGZmWy88CdsOf9itpx/MS0+/5Rma1ZWnL+7R09PQXCAxU+/UBEMD7Bt0EmeguA12W7EFtEyskt3kaWlfptSbyiVLIqzDkPF28jenEaaEUn5A9RaFeRVSdT2jZfo+Oo/KwLeUlZGx1f/SXG/AWQv/oxma1ZWCl43W7PSs3oK8OwgQhHJdnMcsSW7dBdtc7I5LPtwRELJGYxYoqrsLN4ORcXsaNDCUxumnkozIil/gFqrgrwqiRKpnoo1pp5KHK32b6X7EUeZw0ggqkrB6lVsbdiq0nFTT9VTvCh/vJTVpCQy9ZQRLeYwEktd77cFwtOMSMofL6ogr0oiU08ZRnpiTiPNiKT88aIK8qokSqR6KtaYeip5aTD7OZr1PILDmhxCs55H0GD2c3Vus0Mrb3P74fho7ocs+PSTmLaZTJjTSGFC5Vvacv7FLLvrIfa274iKsLd9R5bd9VCFamlPh86Vcj7t6dC5Irh79J2TOKN3B848pi1n9O7A0XdOqrFOpPxSpQ0aVKpX2qABW86/mBW3P8De1m0rle1t3ZYVtz8Q0oYAkfJBhasXqb1wRLqHlpPKPxrMfo7Gv7yajA3rEVUyNqyn8S+vjonjiCXz5n7IZ2nsNCwQnqKEyrcUWJsQTkkUqc73XbvTefb0amV7W7el8XdbQtbZfNGoSsoqcJ7Il931EEc+dHfIentbt2VP9yND2hGur/WjxlLcb0DYvrIXfxbS9t09elZTaQXa86LSqqokC7bBVFXeaLV/Kz2O7BnVuc16HkHGhvXVjpd36szulas929ChVQs2bd0R8Zw7fncrb895k8ysLE497Qzuue8Btm3dyq+v/SUbNzjbAt334B9p1749Z5x8EpmZmeS0bMnkhx+hQ8eOTLxqAkVF22jZshWPTf0bnTp15tWXX+SBe+8hIzOTww5rztv/ep/CwnVc9fPx7NmzB4AH//QoAwcN9nxt4Vjz9UrPgXBzGimKl3xLkepoZmZIRZNC2Dr72ncMqzJqtHlj2HpEaDPU8fLMTH5o067WaqxI7XlRaZmqKvbUxmkc1uQQJMTvlYqwa88PIWpER01OY3tREWeeOpzPly5DRCguLiY7O5tfjLuCn0+4isFDhrJhw3ouvmAEny35ivvuuYumTZvy/667HoDLLr6QkT++iLzLx/Ds9Gd4e84bzPrnSww5sS8vvvom7Tt0qGjz+++/JyMjg0aNGrFm9df8fOwVfPDxp56vLRx1cRqmnjIAb8qlRKmMpKzMkxorUnteMFWVv2jHTkiIkYZ2DLmhZ8w4rHlzDmnUiIlXTeCsc87l7HNHAPDBf99nxfKDuzXs3rWbkpKSavU//2wB/5jtjP5H5Y3m9tuc2NjAQUO45spf8OOLLuH8kRcCcODAAW68/lcs+/ILMjIyWbP667hemxcspmEA3pRLiVIZaWamJzVWpPa8YKoqf9l3591o40MrHdPGh7Lvzrvj2m9WVhbvz53PyB9fxLtvv8XFI88DoLy8nH9/OI95CxYyb8FClq9ZR9OmTaNu909/eYzbfn8nGzdu4OShg9heVMTjf3mU1q3bMG/BIj74+FP2798fr8vyjDmNFMVLvqVIdcIpmgIB61B1IqmMwtXb27ptWDvC1dlw6eWe1Fi7e/SMqUrLVFX+cmDUT9n72F8p79QZFaG8U2f2PvZXDoz6aVz7LSkpYdfOnZx59jncO/khln31JQCnnnY60/76WMV5X36xFICmzZqxe/fuiuMDBg7ipReeB+Cfs59j8JChAKwtWEPugAH89vd30LJlSzZu3MCuXbto07YtGRkZzJ41k7IkWbsUjDmNFGXx0y9U/PgGXjXlW4pUZ8XtD7B+1FjKMzNRnHn/9aPG8tGHS8PWiaQy+ujDpSEVUh99uDSsHR99uDSkDStufyBiX+Fs/+TND8O254VINhiJ4cCon7J75Wp27fmB3StXx9xhDBtYfUq/ZPduLrv4QoYM6Mc5p5/CH+6fDMADD/2JJYsXMWRAPwb2O56nn/wbAOecO4I333iNYQNzmf/xPCY//Agzn53BkAH9eP65mdz/0MMA/O7WmxlyYl8G5/ZhwKDBHHf8CfxiwpU8N/NZhg7sz9erVtCkSZOYXl8ssEB4kuMlWWAibYhlosCa+jLSj9oEwo3YYYHwNCUZth2NZEP7l2fbNquGUc+w6akk5qhH7qu0JgAgc99ejnrkvqSwoarDAEfiGjzyiFVfhmEkB+Y0kphkkHgm0oZkuF7DMCJjTiOJSQaJZyJtSIbrNQwjMuY0kphkkHhGssG2WTWM+oevTkNEzhaRlSKyWkRuDlF+iIg875YvEJGuibfSP5JB4hnJBi+yX699GYaRHPgmuRWRTGAVcAawEfgc+Kmq/i/onGuA41X1KhEZBfxYVS+L1G66SW4NI52pjeT20Ycfom//XIaffErFsbkffsCSRQv51fU3hK9YA9EkLIwHb735BitXLOfXN9xU67p1tbkukls/RxoDgNWqWqCq+4HZwMgq54wEprt/vwicJrbNl2HUS/r2z2X8FXnM/fADwHEY46/Io2//Gn/nfCXcqu5zzzvfk8OoLaWlpTFtz0+n0QHYEPR+o3ss5DmqWgrsBHKqNiQiE0RkoYgs3Llje5zMNQzDT4affApPPzuL8Vfk8Ye77mD8FXk8/eysSiOPePDv995l7OhRFe8/mvshl13kJBh8/9//4oxTTmL44AGMHT2qImHhcUcfye233cLwwQN49eUXeeLxKQzsdzxDBvTjZ2NGAzDz2Rnc+OtfAfDdt98y+rJLGDqwP0MH9q/YxGnKnx9hcG4fBuf24fEpf65mm6ryu1tvZnBuH4ac2JeXX/xnhY3nnP4jRl3yYwb2Oz6m9yMtFvep6jRgGjjTUz6bYxhGnBh+8in87BcTePD+e7nx5lvj7jAATjn1NK6beA179uyhSZMmvPLiC1x06aUUbdvGgw/cx6tz3qFJkyY88scHeezPjzDp1tsAOPzwHOZ+8hkAR3fvwhfLV3HIIYdQXFxcrY9JN/yaoScNZ+bzL1JWVkZJSQlLFy9m1rPT+feHH6OqnH7yUIYOO4kT+vStqPf6a6/w1ZdfMG/BIoq2bePUk4YwZKgjRPli6RLmL1xC167dYno//BxpbAKCcxp3dI+FPEdEsoDmQFFCrDMMI+mY++EHPPXkNG68+VaeenJaxVRVPMnKyuK0M87knbfepLS0lPfeeZtzz7uAzz9bwMoVyznr1JMZNjCX52Y+y4b1B1O3//iSSyv+7tX7OP5v/Bief24mWVnVn9XnfvgBP/+/KwHIzMykefPmfPLJx4w4fyRNmjShadOmnHfBhXwy/+NK9T6dP5+LL72MzMxMWrdpw5CTTmLxImdvl365J8bcYYC/I43PgSNFpBuOcxgF5FU553VgLPAJcAnwvqZbsizDMKIiEMMITEmddPIpCZuiuujSn/C3Jx6nRYvD6dOvH82aNUNV+dGpp/H36f8IWafJoQeTDf7zldf4eN5HvPPWHP44+X7mf74krvZW7T+W+DbScGMUE4F3geXAP1U1X0TuEpEL3NP+DuSIyGrgeqCaLNcwjPrBkkULKzmIQIxjyaL475o47KThfLF0KdOf/jsXX/oTAE4cMJAFn3xCwRpnq9k9e/aw+utV1eqWl5ezceMGhp98Cnfecy+7du6qtlnTyaf8iL//bSrgBM537tzJ4CHDmPPm63z//ffs2bOHOW+8VpFWPcDgIUN55aUXKCsrY9vWrcyfN4/+uSfG4xZU4GtMQ1XfAt6qcuz3QX/vAy6tWs8wjPpHKFnt8JNPiekoY9jAXOYtqO6EMjMzOfucc5n1jxn89W9PAdCyVSsem/YkPx97BT/sd7abve33d3LEkUdVqltWVsaVPxvHrl07UVWuvOaXZGdnVzrn/gcf5lcTr+Yf058mIyOTh/88hQEDB5F3+RhOGz4EgCvG/axSPAPg/JEX8vlnCxg2sD8iwl1/uJc2bduyatXKmN2TqlhqdMMwfMNSo/tDqq7TMAzDMFIMcxqGYRhG1JjTMAzDMKLGnIZhGIYRNeY0DMMwjKgxp2EYhmFEjTkNwzBSgpOeOZHsyQ2rvU56pm6L2Tq0auG57qUXXhAyl1QknvrbNJ6b+WzEc5YsWsRNv/m1Z7viSVokLDQMI/05sf0gVhYtZ3/Z/opjDTMbMqD9IN9seuHV16sdU1VUlYyM0M/kP/u/CTW227d/f/r2719n++KBjTQMw0gJbhpyKxlS+ScrQzK5achv49pvpNToxx19JEXbtlFYuI7cE3px5S/GMzi3Dxs3bmDGM0/T//hjOfWkIVx7zVUVadDvu+cu/vLIwwCMOOt0br/tFk49aQj9jz+W+R/Pq9ZHSUkJ10z4BUNO7MuQAf147dWXAbj+2omcMnQQg/qfwL133xnXexCMOQ3DMFKCtk3bkdd7LA0zGwLOKGN07zG0ado2rv2ecuppLPr8c/bs2QNQkRq9KmtWr+YXE67i00Vf0CCrAQ/efy///mAe777/IV9HSOtRWlrG+x/N577Jf+SBe++pVv7g/X/gsObNmf/5EuZ/tpiTT/4RAL+74y4++PhTPv5sMR/P+4hlX30ZoyuOjDkNwzBShuDRRiJGGRA+NXpVOnXuwokDBgKwaOHnDD3pJFocfjgNGjRg5EXh97k/f6QzoujTtx/rCwurlX/w/vv835VXVbzPbhA1UvkAAAgiSURBVOHEYF556UWGDx7ASYNPZMXy/7FyxfI6XWe0mNMwDCNlCIw2MshIyCgjwEWX/oRXXnqRuR/8tyI1elWaNDnUU9uHNDwEcJIiRrs167p1a/nLo3/i9bfeZf5niznz7HPYt+8HT/3XFnMahmGkFDcNuZVBHYcmZJQRIFRq9Ej065/Lxx99RPGOHZSWlvL6q6947vtHp53G36Y+UfG+eMcOdu/axaFNDuWw5s357ttv+fd773puv7aY0zAMI6Vo27Qdb+X9Jy6jjGEDQyd5DaRG//d773LWOSNqbKd9hw785sZJnDp8KGedejKdu3ThsMMO82TTDZNupbh4B4Nz+zB0YH/mfvgBxx1/Asef0IcT+/TmF+PHMHDQYE9te8FSoxuG4RvpnBq9pKSEpk2bUlpayujLLuHyMeMq4hd+Y6nRDcMwkoz7/3A3wwbmMji3D126duO8C0b6bVJMsMV9hmEYceCe+x7w24S4YCMNwzB8Jd2myJOdut5vcxqGYfhGqWSxs3i7OY4EoarsLN5OqXifZLLpKcMwfKM46zAoKqZo2za/Tak3lEqWc989Yk7DMAzfUMlkRwPvWWaNxOPL9JSIHC4i/xKRr91/Q35rRKRMRJa6r+rpJA3DMIyE4ldM42bgP6p6JPAf930o9qpqH/dVPdmLYRiGkVD8chojgenu39OB5FjxYhiGYUTElxXhIlKsqtnu3wLsCLyvcl4psBQoBe5X1VfDtDcBCOxs0hMIn4c4cbQELLrnYPfiIHYvDmL34iDJcC+6qGqrmk6Km9MQkX8DoZLD/BaYHuwkRGSHqlaLa4hIB1XdJCLdgfeB01R1TVwMjjEisjCaJfn1AbsXB7F7cRC7FwdJpXsRN/WUqp4erkxEvhWRdqr6jYi0A74L08Ym998CEfkA6AukhNMwDMNIR/yKabwOjHX/Hgu8VvUEEWkhIoe4f7cEhgL/S5iFhmEYRjX8chr3A2eIyNfA6e57RCRXRJ50zzkGWCgiXwD/xYlppJLTmOa3AUmE3YuD2L04iN2Lg6TMvUi71OiGYRhG/LDcU4ZhGEbUmNMwDMMwosacRhwQkUwRWSIib/pti9+IyDoR+cpNBbPQb3v8QkSyReRFEVkhIstFJHH7cyYRItIzKDXQUhHZJSLX+W2XX4jIr0UkX0SWichzItLIb5tqwmIacUBErgdygcNU9Ty/7fETEVkH5Kqq3wuXfEVEpgMfqeqTItIQOFRVi/22y09EJBPYBAxU1UK/7Uk0ItIBmAccq6p7ReSfwFuq+oy/lkXGRhoxRkQ6AiOAJ2s616gfiEhzYDjwdwBV3V/fHYbLacCa+ugwgsgCGotIFnAosNlne2rEnEbseQS4CSj325AkQYH3RGSRm+6lPtIN2Ao87U5bPikiTfw2KgkYBTzntxF+4S5efghYD3wD7FTV9/y1qmbMacQQETkP+E5VF/ltSxIxTFX7AecAvxSR4X4b5ANZQD/gr6raF9hD+MzO9QJ3iu4C4AW/bfELd0uIkTgPFe2BJiJyub9W1Yw5jdgyFLjAncefDZwqIv/w1yR/CUoF8x3wCjDAX4t8YSOwUVUXuO9fxHEi9ZlzgMWq+q3fhvjI6cBaVd2qqgeAl4EhPttUI+Y0Yoiq3qKqHVW1K87Q+31VTfonh3ghIk1EpFngb+BMYJm/ViUeVd0CbBCRnu6h07CUOD+lHk9NuawHBonIoW6279OA5T7bVCO23asRT9oArzj/H8gCZqnqO/6a5Bv/D5jpTssUAON9tsc33AeIM4Ar/bbFT1R1gYi8CCzG2f5hCSmQTsQkt4ZhGEbU2PSUYRiGETXmNAzDMIyoMadhGIZhRI05DcMwDCNqzGkYhmEYUWNOw6h3iEiZm2F1mYi8ICKH1nD+rVG2u87dmjiq47FCRC4UkWOD3n8gIrnx6s+o35jTMOoje1W1j6r2BvYDV9VwflROw0cuBI6t8SzDiAHmNIz6zkfAEQAicrmIfOaOQqa6+6Lcj5OFdKmIzHTPe9VNwJjvNQmju1r+Kbe/JSIy0j0+TkReFpF3RORrEZkcVOfnIrLKrfM3EZkiIkNwcjg96NrYwz39Uve8VSJyUh3uj2FUwlaEG/UWNx31OcA7InIMcBkwVFUPiMjjwGhVvVlEJqpqn6CqP1PV7SLSGPhcRF5S1aJadv9bnDQzPxORbOAzEfm3W9YH6Av8AKwUkb8AZcDvcHJW7QbeB75Q1fki8jrwpqq+6F4XQJaqDhCRc4HbcfIcGUadMadh1Ecai8hS9++PcPa5mAD0x3ECAI2B78LUv1ZEfuz+3Qk4Eqit0zgTJ7nlDe77RkBn9+//qOpOABH5H9AFaAl8qKrb3eMvAEdFaP9l999FQNda2mYYYTGnYdRH9lYZOeAmjJuuqrdEqigip+A8tQ9W1e9F5AOcH/zaIsDFqrqySvsDcUYYAcrw9v800IbX+oYREotpGIbDf4BLRKQ1gIgcLiJd3LIDItLA/bs5sMN1GEcDgzz29y7w/1xnhYj0reH8z4GTRaSFO612cVDZbqCZRzsMo1aY0zAMQFX/B9yGs8vgl8C/gHZu8TTgSzcQ/g6QJSLLgfuBT6Ps4ksR2ei+HgbuBhq4x/Pd95Hs2wTcC3wGfAysA3a6xbOBG92Aeo/QLRhGbLAst4aRIohIU1UtcUcarwBPqeorfttl1C9spGEYqcMdbgB/GbAWeNVne4x6iI00DMMwjKixkYZhGIYRNeY0DMMwjKgxp2EYhmFEjTkNwzAMI2rMaRiGYRhR8/8B4LkxuzPcnE8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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cyQBw4E8ESkCzgAWBWtsVtUFqpqjqjlpaWnHXCALCsZEt0OHDpGammoB4RiJCKmpqceVaUUyKKwEhojIQBHpAEwHFjlPqmqlqvZQ1UxVzQT+A1yoqqsiVaCysjJrZDYmyllAOD7H+/lFLCio6lHgOuBtYB3wvKoWiMidInJhpI5bH8sUjDGmfhFtcVXVt1R1qKqeoKr3+LbdpqqLguybG8ksASwoGGPC8+qrryIifPnlly1dlGbXbrrh1NTUUFFRYUHBGNOghQsXMn78eBYuXBixY9TU1ETsvY9Hu1l5zZkh1YKCMa3D9ddfz2effdak7zly5Ej++Mc/1rvPvn37+OCDD1iyZAnf+973uOOOOwCYN28eTz31FDExMZx//vnce++9bNy4kVmzZlFaWkpsbCwvvPACW7du5YEHHuCNN94A4LrrriMnJ4eZM2eSmZnJZZddxrvvvsvNN9/M3r17WbBgAUeOHGHw4MH861//olOnTuzatYtZs2axadMmAObPn8+///1vUlJSuP766wH43e9+R8+ePfnlL3/ZpJ9RuwkKNkOqMSYcr732Gueddx5Dhw4lNTWV1atXU1JSwmuvvcZHH31Ep06d3NkRLr/8cmbPns1FF13EoUOH8Hg8bN26td73T01N5ZNPPgG816WrrroKgDlz5vD444/z85//nF/84hdMmjSJV155hZqaGvbt20dGRgYXX3wx119/PR6Ph2effZaPP/64yc+/3QQFm+LCmNaloTv6SFm4cKF79z19+nQWLlyIqvLjH/+YTp06Ad6by71797Jt2zYuuugiwDtoLByXXXaZ+/MXX3zBnDlzqKioYN++fZx77rkALF68mCeffBKA2NhYunXrRrdu3UhNTeXTTz9l165dnHrqqRG5nrW7oGCZgjEmlPLychYvXszatWsREWpqahARLr300rDfIy4uDo/H4z6uPWagc+fO7s8zZ87k1Vdf5ZRTTuGJJ54gLy+v3ve+8soreeKJJ9i5cyc/+clPwi5TY7SbhmYLCsaYhrz44ov86Ec/YsuWLRQVFbF161YGDhxIt27d+Mc//sGBAwcA7/UkKSmJvn378uqrrwJw+PBhDhw4wIABAygsLOTw4cNUVFTw/vvvhzze3r17SU9Pp7q6mqefftrdPnnyZObPnw94G6QrKysBuOiii/j3v//NypUr3ayiqVlQMMYY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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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dol45CIiecjMuOWWW4hGo1x00UV0796dOnXqsHTp0rCjSRJRuYgUUieeeCKTJk1i3LhxfP3115xzzjncf//9bN++PexokgRULiKFmJlx9dVXs3z5clq1asWDDz7IOeecw9y5c8OOJgWcykVEKFOmDM8//zxvvfUWmzdvpk6dOtx5551s3bo17GhSQKlcROT/XXLJJWRlZdGhQwcGDx5M5cqVmTFjRtixpABSuYjI75QqVYonnniCDz/8kJSUFBo1akT79u3ZtGlT2NGkAFG5iEiOzj//fJYsWUKPHj0YNWoUkUiE119/PexYUkCoXERkrw499FAGDBjA3LlzKVu2LM2bN6dVq1asX78+7GiS4FQuIrJf6enpZGRk0K9fPyZNmkTFihV54YUXNBGm7JXKRURypVixYtxzzz0sXryYs846izZt2nDppZfyzTffhB1NEpDKRUQOSMWKFZk1axZDhgzhww8/JDU1lSeeeEITYcrvqFxE5IClpKTQuXNnMjMzqV27NrfffjsNGjTg888/DzuaJAiVi4gctFNPPZV3332XUaNGsWzZMipXrsyAAQPYuXNn2NEkZCoXEflTzIwbb7yRaDTKJZdcQs+ePalVqxZLliwJO5qESOUiInFxwgkn8OqrrzJhwgRWr15Neno69957L9u2bQs7moRA5SIicdWyZUui0SitW7fmoYceolq1asyZMyfsWJLPVC4iEndlypRhzJgxTJkyhZ9//pnzzjuPLl26sGXLlrCjST5RuYhInmnSpAmZmZl07NiRIUOGUKlSJaZNmxZ2LMkHKhcRyVMlS5Zk6NChzJo1ixIlStC4cWNuuukmNm7cGHY0yUMqFxHJF3Xr1mXx4sX07NmT5557jkgkwqRJk8KOJXkklHIxs6vMLMvMdplZ+h7repnZCjP7zMwuyjbeJBhbYWY9s42famZzg/FxZlY8P1+LiOTeIYccwj//+U/mzZvH8ccfz5VXXslVV13FunXrwo4mcRbWkUsmcCUwM/ugmUWAVkAq0AR4wsxSzCwFGAZcDESAa4NtAQYAg939DGAjcHP+vAQROVjVq1dn3rx59O/fnzfeeINIJMKYMWM0EWYSCaVc3H25u3+Ww6pmwMvuvt3dvwRWADWDZYW7r3T3HcDLQDMzM+BCYGJw/zFA87x/BSLyZxUrVoxevXqxePFiIpEI7dq1o0mT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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot points and grid\n",
    "plt.contourf(xx, yy, grid_predictions, cmap=plt.cm.Paired, alpha=0.8)\n",
    "plt.plot(class1_x, class1_y, 'ro', label='I. setosa')\n",
    "plt.plot(class2_x, class2_y, 'kx', label='I. versicolor')\n",
    "plt.plot(class3_x, class3_y, 'gv', label='I. virginica')\n",
    "plt.title('Gaussian SVM Results on Iris Data')\n",
    "plt.xlabel('Petal Length')\n",
    "plt.ylabel('Sepal Width')\n",
    "plt.legend(loc='lower right')\n",
    "plt.ylim([-0.5, 3.0])\n",
    "plt.xlim([3.5, 8.5])\n",
    "plt.show()\n",
    "\n",
    "# Plot batch accuracy\n",
    "plt.plot(batch_accuracy, 'k-', label='Accuracy')\n",
    "plt.title('Batch Accuracy')\n",
    "plt.xlabel('Generation')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend(loc='lower right')\n",
    "plt.show()\n",
    "\n",
    "# Plot loss over time\n",
    "plt.plot(loss_vec, 'k-')\n",
    "plt.title('Loss per Generation')\n",
    "plt.xlabel('Generation')\n",
    "plt.ylabel('Loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
